1. Field of the Invention
The present invention relates to an IC tag, a method of controlling the IC tag, and an IC tag system. In particular, the invention relates to an IC tag which communicates with a reader/writer by radio, a method of controlling the IC tag, and an IC tag system.
2. Description of Related Art
In recent years, attentions have been paid to a technique regarding RFID (Radio Frequency IDentification) as a product automatic identifying technique for affixing an IC tag having product specific information written thereto, and scanning this information using a radio antenna to manage a product in real time, in merchandise logistics management at the factory and article management at a retail shop. The RFID is advantageous in that data can be read from plural tags at a time or data stored in a tag can be rewritten unlike a barcode.
The above RFID IC tag (hereinafter simply referred to as “IC tag”) communicates with a reader/writer by radio to write/read data to/from a non-volatile memory in the IC tag. The IC tag communicates with the reader/writer while transmitting/receiving radio waves or data in accordance with a predetermined communication protocol.
Further, the RFID adopts a technique called “anti-collision” for communications between a reader/writer and plural IC tags. In the REID, data communication is carried out in such a way that the IC tag responds back to radio waves transmitted from the reader/writer. Thus, if plural IC tags exist within a communicable range of the reader/writer, the plural IC tags simultaneously transmit signals to the reader/writer. As a result, the signals of the plural tags overlap with each other in time, and the reader/writer cannot receive a desired signal. Such phenomenon is referred to as “signal collision”. The anti-collision is a technique of preventing the collision and identifying each IC tag to execute communications. In order to identify an IC tag, a tag ID (identification information unique to an IC tag) for uniquely identifying an IC tag called a “unique ID” is stored in an IC tag.
For the anti-collision or accesses to a memory of an IC tag, a tag ID read command to read a tag ID from an IC tag, a read command to read data stored in the IC tag, and a write command to write data to the IC tag are utilized. Assuming that the IC tag executes a command, a reader/write sends command data representing a command to be executed toward the IC tag. Then, the IC tag sends response data as a response showing the result of executing the command, toward the reader/writer.
FIG. 8 shows a format of command data sent from the reader/writer to the IC tag. As shown in FIG. 8, the command data includes a command ID field 801 and a data field 802. The command ID field 801 stores a command ID (command identifier) to be executed by the IC tag. The data field 802 stores parameters necessary for executing a command. Examples of the command parameters include a tag ID of an IC tag intended to execute a command, a read address, a write address, and write data. Incidentally, the data field 802 can be omitted depending on a command to be executed. Receiving the command data, the IC tag analyzes the command data to execute a command in accordance with parameters of the data field.
Further, the IC tag has plural internal states (communication states), and operates while shifting the state in accordance with the command execution. For example, the internal state of the IC tag is held by an internal flag of the IC tag. The internal flag is, for example, a sleep flag or an isolate flag. The sleep flag indicates a SLEEP state that the operation of the IC tag is temporarily suspended. The isolate flag indicates an ISOLATED state that the reader/writer identifies a tag ID.
Each state is changed in response to a reset signal or command sent from the reader/writer. Examples of the command that shifts the state of the IC tag include a SLEEP command to put the IC tag into the SLEEP state, a WAKE command to cancel the SLEEP state of the IC tag, and an ISOLATE command to bring the IC tag into an ISOLATED state. For example, when receiving the SLEEP command, the IC tag sets a sleep flag to set the internal state to the SLEEP state. When receiving the ISOLATE command, the IC tag sets the isolate flag to set the internal state to the ISOLATED state.
When receiving command data, the IC tag executes a requisite operation in accordance with command parameters or the IC tag internal state. That is, the IC tag includes a condition determining circuit, and this circuit determines an execution condition for executing a command. If the execution condition is met, the IC tag executes a command. Commands that can be executed if the execution command is met are called “condition-matched command”.
Flowcharts of FIGS. 9 and 10 show a command receiving processing in a conventional IC tag. FIG. 9 shows an operation of the IC tag in the case of receiving a tag ID read command, and FIG. 10 shows an operation of the IC tag in the case of receiving a SLEEP command.
As shown in FIG. 9, when receiving a tag ID read command (S801), the IC tag determines whether or not a sleep flag held therein is 0 (S802). If the determination result shows that the sleep flag is 0, that is, if the SLEEP state is cancelled, a tag ID read processing is executed (S803). On the other hand, if the sleep flag is not 0, that is, if the IC tag is in the SLEEP state, a processing of changing a state or the like is not carried out and a current state is kept.
As shown in FIG. 10, when receiving the SLEEP command (S811), the IC tag references command parameters to determine whether or not a tag ID held therein is included within a designated tag ID area (S812). If the determination result shows that the tag ID is included, the sleep flag is set to 1 to put the tag into the SLEEP state (S813). On the other hand, if the tag ID is not included, a processing of changing a state or the like is not carried out and a current state is kept.
FIG. 11 is a sequence chart of a communication method of a conventional IC tag system. This sequence is such that a reader/writer communicates with IC tags a and b within a communication area to identify tag IDs of the IC tags a and b through anti-collision.
First, the reader/writer sends a reset signal to the IC tags a and b in order to reset the internal state of the IC tags within a communication area (S901), and the IC tags a and b sets the sleep flag to 1 and sets the isolate flag to 0 to thereby set the internal state to the SLEEP state (S902). Subsequently, the reader/writer sends an INIT command to the IC tags a and b within the communication area (S903), and the IC tags a and b are initialized (S904).
Next, the reader/writer executes an anti-collision processing from step S905 onward. First, the reader/writer sends a WAKE command to the IC tags a and b (S905). Then, the IC tags a and b reset the sleep flag to 0, and the SLEEP state as the internal state is cancelled (S906). Next, the reader/writer sends a tag ID read command to the IC tags a and b (S907). Then, the IC tags a and b determines whether or not sleep flag=0 as shown in FIG. 9 to retrieve a tag ID held therein and send the tag ID to the reader/writer as a response to the command (S908).
Next, the reader/writer detects a collision of the received tag ID to send the SLEEP command to the IC tags a and b (S909). As a parameter of the SLEEP command, a tag ID range is set as a condition for an IC tag the internal state of which is the SLEEP state. Then, as shown in FIG. 10, it is determined whether or not tag IDs of the IC tags a and b fall within the tag ID range designated by the command parameter. As a result, the tag ID of the IC tag a is out of the range, so a command processing thereof is not executed. On the other hand, the tag ID of the IC tag b falls within the range, so the sleep flag is set to 1 to put the IC tag into the SLEEP state (S910). Next, the reader/writer sends the tag ID read command to the IC tags a and b (S911). Then, as shown in FIG. 9, the IC tags a and b determined whether or not sleep flag=0. As a result, sleep flag=1 for the IC tag b, so the processing thereof is not executed. On the other hand, sleep flag=0 for the IC tag a, so a tag ID held therein is retrieved, and the tag ID is sent to the reader/writer as a response to the command (S912).
Next, since there is no fear about the collision of the tag ID, the reader/writer identifies the tag ID of the IC tag a to send the ISOLATE command to the IC tags a and b (S913). Then, the IC tags a and b determined whether or not sleep flag =0. As a result, sleep flag=1 for the IC tag b, so the processing thereof is not executed. On the other hand, sleep flag=0 for the IC tag a, the isolate flag is set to 1 to put the tag into the ISOLATED state (S914).
Next, the reader/writer sends the WAKE command to the IC tags a and b (S915). Then, the IC tags a and b reset the sleep flag to 0 to cancel the SLEEP state as the internal state (S916) Next, the reader/writer sends the SLEEP command to the IC tags a and b (S917). As a parameter of the SLEEP command, “isolate flag=1” is set as a condition for an IC tag the internal state of which is the SLEEP state. Then, the IC tags a and b determine whether or not isolate flag=1. As a result, isolate flag=0 for the IC tag b, so the processing thereof is not executed. On the other hand, isolate flag=1 for the IC tag a, so the sleep flag is set to 1 to bring the IC tag into the SLEEP state (S918). Next, the reader/writer sends the tag ID read command to the IC tags a and b (S919). Then, as shown in FIG. 9, the IC tags a and b determined whether or not sleep flag=0. As a result, sleep flag=1 for the IC tag a, so the processing thereof is not executed. On the other hand, sleep flag=0 for the IC tag b, so a tag ID held therein is retrieved, and the tag ID is sent to the reader/writer as a response to the command (S920)
Next, since there is no fear about the collision of the tag ID, the reader/writer identifies a tag ID of the IC tag b to send the ISOLATE command to the IC tags a and b (S921). At that time, the IC tags a and b determine whether or not sleep flag=0. As a result, sleep flag=1 for the IC tag a, so the processing thereof is not executed. On the other hand, sleep flag=0 for the IC tag b, so the isolate flag is set to 1 to bring the tag into the ISOLATED state (S922). Next, the reader/writer sends the WAKE command to the IC tags a and b (S923) Then, the IC tags a and b reset the sleep flag to 0 to cancel the SLEEP state as the internal state (S924). Next, the reader/writer sends the SLEEP command to the IC tags a and b (S925). As a parameter of the SLEEP command, “isolate flag=1” is set as a condition for an IC tag the internal state of which is the SLEEP state. Then, the IC tags a and b determined whether or not isolate flag=1. As a result, isolate flag=1 for the IC tags a and b, so the sleep flag is set to 1 to bring the tag into the SLEEP state (S926). Through the aforementioned steps, the anti-collision processing is completed. The read command or write command is sent to the IC tags a and b, and data is written to/read from a memory of the IC tags a and b.
Incidentally, one disclosed in Japanese Unexamined Patent Application Publication No. 2004-38574 has been known as a conventional IC card system. In the system of Japanese Unexamined Patent Application Publication No. 2004-38574, only an IC card that satisfies the execution condition responds back to the reader/writer, as shown in FIGS. 9 and 10.
As described above, in the conventional IC tag system, the anti-collision processing requires transmission/reception of much command data or response data until the tag ID of the IC tag is identified, and thus the processing takes much time to execute. This problem is more serious as the number of IC tags increases.
Considering an example of applying the RFID to a physical distribution system, products have been distributed in large quantity in recent years, so the number of products (IC tags) to be identified/processed by the reader/writer during one processing is increased. Further, in the case of identifying/processing tags in a conveyor system such as a belt conveyor system, a conveying speed itself of the belt conveyor becomes higher. In this way, there is an increasing demand to process more products at higher speeds. To that end, it is important to increase a tag identifying/processing speed of the reader/writer.